package com.wtwd.device.model.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * <p>
 * 
 * </p>
 *
 * @author mjy
 * @since 2021-08-31
 */
@ApiModel(value="SportRecord对象", description="")
public class SportModeInfo implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "运动记录表id")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    @ApiModelProperty(value = "设备id", required = true)
    private Long deviceId;

    @ApiModelProperty(value = "运动类型",required = true)
    private Integer sportType;

    @ApiModelProperty(value = "运动的距离",required = false)
    private Integer distance;

    @ApiModelProperty(value = "平均心率",required = true)
    private Integer avgHeartRate;

    @ApiModelProperty(value = "最大心率",required = true)
    private Integer maxHeartRate;

    @ApiModelProperty(value = "运动的步数",required = false)
    private Integer stepNumber;

    @ApiModelProperty(value = "运动的卡路里",required = false)
    private Integer calories;

    @ApiModelProperty(value = "平均配速",required = false)
    private Integer avgPace;

    @ApiModelProperty(value = "最大配速",required = false)
    private Integer maxPace;

    @ApiModelProperty(value = "平均步频",required = false)
    private Integer avgFrequency;

    @ApiModelProperty(value = "最大步频",required = false)
    private Integer maxFrequency;

    @ApiModelProperty(value = "平均海拔",required = false)
    private Integer avgElevation;

    @ApiModelProperty(value = "最大海拔",required = false)
    private Integer maxElevation;

    @ApiModelProperty(value = "运动时产生的心率数据集",required = false)
    private String heartData;

    @ApiModelProperty(value = "运动时产生的配速数据集",required = false)
    private String paceData;

    @ApiModelProperty(value = "运动时产生的步频数据集",required = false)
    private String frequencyData;

    @ApiModelProperty(value = "海拔",required = false)
    private String elevationData;

    @ApiModelProperty(value = "开始时间(单位秒)",required = true)
    private Long startTime;

    @ApiModelProperty(value = "结束时间(单位秒)",required = true)
    private Long endTime;

    @ApiModelProperty(value = "时间，格式：yyyy-MM-dd,如有定位文件,请上传和定位时间相同的时间",required = true)
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    private Date time;

    @ApiModelProperty(value = "运动时产生的心率数据集",required = false)
    private List<HeartData> heartDataList;

    @ApiModelProperty(value = "运动时产生的配速数据集",required = false)
    private List<PaceData> paceDataList;

    @ApiModelProperty(value = "运动时产生的步频数据集",required = false)
    private List<FrequencyData> frequencyDataList;

    @ApiModelProperty(value = "海拔",required = false)
    private List<ElevationData> elevationDataList;

    @ApiModelProperty(value = "设备定位的文件存放地址",required = false)
    private String locationFile;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getDeviceId() {
        return deviceId;
    }

    public void setDeviceId(Long deviceId) {
        this.deviceId = deviceId;
    }

    public Integer getSportType() {
        return sportType;
    }

    public void setSportType(Integer sportType) {
        this.sportType = sportType;
    }

    public Integer getDistance() {
        return distance;
    }

    public void setDistance(Integer distance) {
        this.distance = distance;
    }

    public Integer getAvgHeartRate() {
        return avgHeartRate;
    }

    public void setAvgHeartRate(Integer avgHeartRate) {
        this.avgHeartRate = avgHeartRate;
    }

    public Integer getMaxHeartRate() {
        return maxHeartRate;
    }

    public void setMaxHeartRate(Integer maxHeartRate) {
        this.maxHeartRate = maxHeartRate;
    }

    public Integer getStepNumber() {
        return stepNumber;
    }

    public void setStepNumber(Integer stepNumber) {
        this.stepNumber = stepNumber;
    }

    public Integer getCalories() {
        return calories;
    }

    public void setCalories(Integer calories) {
        this.calories = calories;
    }

    public Integer getAvgPace() {
        return avgPace;
    }

    public void setAvgPace(Integer avgPace) {
        this.avgPace = avgPace;
    }

    public Integer getMaxPace() {
        return maxPace;
    }

    public void setMaxPace(Integer maxPace) {
        this.maxPace = maxPace;
    }

    public Integer getAvgFrequency() {
        return avgFrequency;
    }

    public void setAvgFrequency(Integer avgFrequency) {
        this.avgFrequency = avgFrequency;
    }

    public Integer getMaxFrequency() {
        return maxFrequency;
    }

    public void setMaxFrequency(Integer maxFrequency) {
        this.maxFrequency = maxFrequency;
    }

    public Integer getAvgElevation() {
        return avgElevation;
    }

    public void setAvgElevation(Integer avgElevation) {
        this.avgElevation = avgElevation;
    }

    public Integer getMaxElevation() {
        return maxElevation;
    }

    public void setMaxElevation(Integer maxElevation) {
        this.maxElevation = maxElevation;
    }

    public String getHeartData() {
        return heartData;
    }

    public void setHeartData(String heartData) {
        this.heartData = heartData;
    }

    public String getPaceData() {
        return paceData;
    }

    public void setPaceData(String paceData) {
        this.paceData = paceData;
    }

    public String getFrequencyData() {
        return frequencyData;
    }

    public void setFrequencyData(String frequencyData) {
        this.frequencyData = frequencyData;
    }

    public String getElevationData() {
        return elevationData;
    }

    public void setElevationData(String elevationData) {
        this.elevationData = elevationData;
    }

    public Long getStartTime() {
        return startTime;
    }

    public void setStartTime(Long startTime) {
        this.startTime = startTime;
    }

    public Long getEndTime() {
        return endTime;
    }

    public void setEndTime(Long endTime) {
        this.endTime = endTime;
    }

    public Date getTime() {
        return time;
    }

    public void setTime(Date time) {
        this.time = time;
    }

    public List<HeartData> getHeartDataList() {
        return heartDataList;
    }

    public void setHeartDataList(List<HeartData> heartDataList) {
        this.heartDataList = heartDataList;
    }

    public List<PaceData> getPaceDataList() {
        return paceDataList;
    }

    public void setPaceDataList(List<PaceData> paceDataList) {
        this.paceDataList = paceDataList;
    }

    public List<FrequencyData> getFrequencyDataList() {
        return frequencyDataList;
    }

    public void setFrequencyDataList(List<FrequencyData> frequencyDataList) {
        this.frequencyDataList = frequencyDataList;
    }

    public List<ElevationData> getElevationDataList() {
        return elevationDataList;
    }

    public void setElevationDataList(List<ElevationData> elevationDataList) {
        this.elevationDataList = elevationDataList;
    }

    public String getLocationFile() {
        return locationFile;
    }

    public void setLocationFile(String locationFile) {
        this.locationFile = locationFile;
    }

    @Override
    public String toString() {
        return "SportModeInfo{" +
                "id=" + id +
                ", deviceId=" + deviceId +
                ", sportType=" + sportType +
                ", distance=" + distance +
                ", avgHeartRate=" + avgHeartRate +
                ", maxHeartRate=" + maxHeartRate +
                ", stepNumber=" + stepNumber +
                ", calories=" + calories +
                ", avgPace=" + avgPace +
                ", maxPace=" + maxPace +
                ", avgFrequency=" + avgFrequency +
                ", maxFrequency=" + maxFrequency +
                ", avgElevation=" + avgElevation +
                ", maxElevation=" + maxElevation +
                ", heartData='" + heartData + '\'' +
                ", paceData='" + paceData + '\'' +
                ", frequencyData='" + frequencyData + '\'' +
                ", elevationData='" + elevationData + '\'' +
                ", startTime=" + startTime +
                ", endTime=" + endTime +
                ", time=" + time +
                ", heartDataList=" + heartDataList +
                ", paceDataList=" + paceDataList +
                ", frequencyDataList=" + frequencyDataList +
                ", elevationDataList=" + elevationDataList +
                ", locationFile='" + locationFile + '\'' +
                '}';
    }
}
